package com.company.cloud.product.modules.mgr.controller.req;

import java.math.BigDecimal;
import java.util.List;
import java.util.Set;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.company.cloud.common.bean.BaseParam;
import com.company.cloud.common.constant.BaseConstant.YNEnum;
import com.company.cloud.product.modules.api.constant.ProductTypeEnum;
import com.company.cloud.product.modules.api.response.ProductImageItem;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class ProductInfoBaseSaveParam extends BaseParam {

	@ApiModelProperty(value = "公司编号")
	private String companyNo;

	@ApiModelProperty(value = "商品分类")
	private Integer categoryId;

	@ApiModelProperty(value = "商品品牌ID")
	private Integer brandId;

	/**
	 * 商品分类树
	 */
	@ApiModelProperty(value = "商品分类树")
	private String treePath;

	@ApiModelProperty(value = "商品类型【ProductTypeEnum", required = true)
	@NotEmpty(message = "商品类型不能为空")
	private String type = ProductTypeEnum.Show_Product.getCode();

	@ApiModelProperty(value = "商品二级类型【ProductTwoTypeEnum】")
	private String twoType;

	@ApiModelProperty(value = "商品名称", required = true)
	@NotEmpty(message = "商品名称不能为空")
	private String name;

	@ApiModelProperty(value = "商品副标题")
	private String caption;

	@ApiModelProperty(value = "商品分享名称")
	private String shareName;

	@ApiModelProperty(value = "展示图片1")
	private String image;

	@ApiModelProperty(value = "展示图片2")
	private String image2;

	@ApiModelProperty(value = "展示图片3")
	private String image3;

	@ApiModelProperty(value = "展示图片4")
	private String image4;

	@ApiModelProperty(value = "介绍")
	private String introduction;

	@ApiModelProperty(value = "成本价")
	private BigDecimal cost;

	@ApiModelProperty(value = "市场价")
	private BigDecimal marketPrice;

	@ApiModelProperty(value = "销售价")
	private BigDecimal price;

	@ApiModelProperty(value = "是否支持退换货", required = true)
	@NotEmpty(message = "是否支持退换货不能为空")
	private String isExchangePurchase = YNEnum.NO.getCode();

	@ApiModelProperty(value = "是否支持分销", required = true)
	@NotEmpty(message = "是否支持分销不能为空")
	private String isDis = YNEnum.NO.getCode();

	@ApiModelProperty(value = "分润设置分类[ProductDisProfitTypeEnum]")
	private String disProfitType;

	@ApiModelProperty(value = "分润设置")
	private ProductDisProfitConfigItem disProfitConfig;

	@ApiModelProperty(value = "是否限购", required = true)
	@NotEmpty(message = "是否限购不能为空")
	private String isBuyLimit = YNEnum.NO.getCode();

	@ApiModelProperty(value = "限购数量")
	private Integer buyLimitNum;

	@ApiModelProperty(value = "兑换积分")
	private Integer exchangePoint;

	@ApiModelProperty(value = "赠送积分")
	private Integer rewardPoint;

	@ApiModelProperty(value = "库存数量")
	private BigDecimal stockNum;

	@ApiModelProperty(value = "标签")
	private List<String> tagItems;

	@ApiModelProperty(value = "单位", required = true)
	@NotEmpty(message = "商品单位不能为空")
	private String unit;

	@ApiModelProperty(value = "重量")
	private Integer weight;

	@ApiModelProperty(value = "保质期(天)")
	private Integer lifeDay;

	@ApiModelProperty(value = "备注")
	private String memo;

	@ApiModelProperty(value = "是否上架", required = true)
	@NotEmpty(message = "是否上架不能为空")
	private String isMarketable = YNEnum.NO.getCode();

	@ApiModelProperty(value = "排序", required = true)
	@NotNull(message = "排序")
	private Integer orders = 0;

	@ApiModelProperty(value = "搜索关键词")
	private String keyword;

	@ApiModelProperty(value = "商品图片")
	private List<ProductImageItem> imageItems;

	@ApiModelProperty(value = "业务扩展1")
	private String bizValue1;

	@ApiModelProperty(value = "业务扩展2")
	private String bizValue2;

	@ApiModelProperty(value = "业务扩展3")
	private String bizValue3;

	@ApiModelProperty(value = "业务扩展4")
	private String bizValue4;

	@ApiModelProperty(value = "业务扩展5")
	private String bizValue5;

	@ApiModelProperty(value = "业务扩展6")
	private String bizValue6;

	@ApiModelProperty(value = "业务扩展7")
	private String bizValue7;

	@ApiModelProperty(value = "业务扩展8")
	private String bizValue8;

	@ApiModelProperty(value = "业务扩展9")
	private String bizValue9;

	@ApiModelProperty(value = "业务扩展10")
	private String bizValue10;

	@ApiModelProperty(value = "业务扩展11")
	private String bizValue11;

	@ApiModelProperty(value = "业务扩展12")
	private String bizValue12;

	@ApiModelProperty(value = "业务扩展13")
	private String bizValue13;

	@ApiModelProperty(value = "业务扩展14")
	private String bizValue14;

	@ApiModelProperty(value = "业务扩展15")
	private String bizValue15;

	@ApiModelProperty(value = "业务扩展16")
	private String bizValue16;

	@ApiModelProperty(value = "业务扩展17")
	private String bizValue17;

	@ApiModelProperty(value = "业务扩展18")
	private String bizValue18;

	@ApiModelProperty(value = "业务扩展19")
	private String bizValue19;

	@ApiModelProperty(value = "业务扩展20")
	private String bizValue20;
	
  
    @ApiModelProperty(value = "业务扩展21")
    private String bizValue21;
     
   
    @ApiModelProperty(value = "业务扩展22")
    private String bizValue22;
      
 
       @ApiModelProperty(value = "业务扩展23")
    private String bizValue23;
       
    
        @ApiModelProperty(value = "业务扩展24")
         private String bizValue24;
        
    
         @ApiModelProperty(value = "业务扩展25")
          private String bizValue25;
         
       
          @ApiModelProperty(value = "业务扩展26")
           private String bizValue26;
          
    
           @ApiModelProperty(value = "业务扩展27")
            private String bizValue27;
           
           
            @ApiModelProperty(value = "业务扩展28")
             private String bizValue28;

	@ApiModelProperty(value = "SEO关键字")
	private String metaKeywords;

	@ApiModelProperty(value = "SEO描述信息")
	private String metaDescription;

	@ApiModelProperty(value = "运费")
	private BigDecimal freightFee = BigDecimal.ZERO;

	@ApiModelProperty(value = "支持的装裱")
	private Set<String> mounts;

}
